<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // ES6 提供了新的数据结构 Set。它类似于数组，但是成员的值都是唯一的，没有重复的值。
        // set通过new的方式进行创建，Set是一个构造函数
        var set=new Set();
        console.log(set);

        // Set构造函数会自动将传入的数据转换为集合
        var arr=[1,2,3,4,5,1,2,3];

        // 1.去重，set集合在元素构成中，必须保证每个元素都是唯一的
        var set2=new Set(arr);
        var a=Array.from(set2);//将set数据转换为数组格式的数据
        console.log(a);

        var set3=new Set("abcdabcdabcde");
        console.log(set3);


        // Set的实例属性和方法
        //     size ：返回Set 实例的成员总数。
        //     add(value) ：添加某个值，返回 Set 结构本身。
        //     delete(value) ：删除某个值，返回一个布尔值，表示删除是否成功。
        //     has(value) ：返回一个布尔值，表示该值是否为Set 的成员。
        //     clear() ：清除所有成员，没有返回值。

        var set4=new Set();
        var user={name:"alice"};
        set4.add("tom");//添加元素
        set4.add("lucy");
        set4.add("lucy");
        set4.add([100,200,300]);
        set4.add([100,200,300]);
        set4.add(user);
        set4.add(user);
        console.log(set4.delete("lucy"));//删除元素，返回布尔值
        console.log(set4.has([100,200,300]));//false
        console.log(set4.has("tom"));//true
        console.log(set4.has(user));//true
        set4.clear();//清除所有
        console.log(set4.size);//元素的数量
       
    </script>
</head>
<body>
    
</body>
</html>